Source transformation in software engineering using the TXL transformation system

نویسندگان

  • James R. Cordy
  • Thomas R. Dean
  • Andrew J. Malton
  • Kevin A. Schneider
چکیده

Many tasks in software engineering can be characterized as source to source transformations. Design recovery, software restructuring, forward engineering, language translation, platform migration and code reuse can all be understood as transformations from one source text to another. TXL, the Tree Transformation Language, is a programming language and rapid prototyping system specifically designed to support rule-based source to source transformation. Originally conceived as a tool for exploring programming language dialects, TXL has evolved into a general purpose source transformation system that has proven well suited to a wide range of software maintenance and reengineering tasks, including the design recovery, analysis and automated reprogramming of billions of lines of commercial Cobol, PL/I and RPG code for the Year 2000. In this paper we introduce the basic features of modern TXL and its use in a range of software engineering applications, with an emphasis on how each task can be achieved by source transformation. 1. Background Many tasks in software engineering and maintenance can be characterized as source to source transformations. Reverse engineering or design recovery [1] can be cast as a source transformation from the text of the legacy source code files to the text of a set of design facts. Software reengineering and restructuring [2] can be cast as a source transformation from the poorly structured original source code text to the better structured new source code. Forward engineering or metaprogramming [3], can be cast as a transformation from the source text of design documents and templates to the instantiated source code files. Platform translation and migration tasks are easily understood as transformations from the original source code files to new source code files in the new language or paradigm. And code reuse tasks can be implemented as a source transformation from existing, tested source code to generic reusable source code modules. While many other methods can be applied to various parts of these problems, at some point each of them must involve dealing with actual source text of some kind at each end of the process. In this short paper we describe our experiences with attempting to tighten the relationship between the source text artifacts at each end of the processes by experimenting with actually implementing these and other software engineering tasks using pure source text transformations in the TXL source transformation language [4,5]. The experience we report is a summary of the results of many different projects over …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software Engineering by Source Transformation-Experience with TXL

Many tasks in software engineering can be characterized as source to source transformations. Design recovery, software restructuring, forward engineering, language translation, platform migration and code reuse can all be understood as transformations from one source text to another. TXL, the Tree Transformation Language, is a programming language specifically designed to support rule-based sou...

متن کامل

A Practical Evaluation of Using TXL for Model Transformation

As one of the MDA’s main principles, model transformation has led to the specification of QVT and a large number of model transformation tools. TXL is a generic source transformation tool that also possesses some very important model transformation properties, such as scalability and efficiency. In this paper, we consider TXL as a model transformation tool, especially, for model-to-model transf...

متن کامل

The TXL source transformation language

TXL is a special-purpose programming language designed for creating, manipulating and rapidly prototyping language descriptions, tools and applications. TXL is designed to allow explicit programmer control over the interpretation, application, order and backtracking of both parsing and rewriting rules. Using first order functional programming at the higher level and term rewriting at the lower ...

متن کامل

Practical metaprogramming

Metaprogramming is the process of specifying generic software source templates from which classes of software components, or parts thereof, can be automatically instantiated to produce new software components. Metaprograms are specified in an annotated by-example style accessible to ordinary programmers of the source language. Annotations are in the form of Prologlike predicates that specify th...

متن کامل

How to make a bridge between transformation and analysis technologies?

ions Abstraction Documentation Conversion Formalization Generation Presentation Analysis Figure 1: Three source code representation tiers about source code. Such facts are usually represented in data-bases containing relations between selected source code artefacts. Question Figure 1 illustrates possible connections between source code representation tiers. Apparently, such connections play a c...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Information & Software Technology

دوره 44  شماره 

صفحات  -

تاریخ انتشار 2002